Binary Classification (বাইনারি ক্লাসিফিকেশন)
Binary Classification একটি মেশিন লার্নিং সমস্যা যেখানে লক্ষ্য থাকে দুটি শ্রেণিতে ডেটা শ্রেণিবদ্ধ করা। এই ধরনের সমস্যা সাধারণত এমন পরিস্থিতিতে ব্যবহৃত হয় যেখানে আউটপুট দুটি সম্ভাব্য শ্রেণির মধ্যে একটি হবে, যেমন:
- স্প্যাম এবং নন-স্প্যাম ইমেইল।
- অ্যালার্ম এবং নন-অ্যালার্ম সিগন্যাল।
- পাস এবং ফেইল ফলাফল।
এ ধরনের ক্লাসিফিকেশন মডেল একটি দ্বৈত শ্রেণি সমস্যা সমাধান করে এবং আউটপুট হিসেবে একটি বাইনারি ফলাফল প্রদান করে।
Binary Classification এর উদাহরণ:
ধরা যাক, আমাদের লক্ষ্য হলো একটি ইমেইলকে স্প্যাম বা নন-স্প্যাম শ্রেণিতে ভাগ করা। এখানে ইনপুট ডেটা (যেমন ইমেইলের বিষয়বস্তু, পাঠক) থাকবে এবং আউটপুট হবে দুটি শ্রেণির মধ্যে একটি: স্প্যাম অথবা নন-স্প্যাম।
লিনিয়ার মডেল:
বাইনারি ক্লাসিফিকেশন মডেলটি লিনিয়ার রিগ্রেশন বা লজিস্টিক রিগ্রেশন মডেল হতে পারে। তবে বাইনারি ক্লাসিফিকেশন মডেল ব্যবহারের সময়, আউটপুট সিগময়েড ফাংশনের মাধ্যমে দুটি ক্লাসে রূপান্তরিত হয়।
Sigmoid Function (সিগময়েড ফাংশন)
Sigmoid Function একটি ম্যাথমেটিক্যাল ফাংশন যা ইনপুট ভ্যালুকে একটি নির্দিষ্ট পরিসরে (0 এবং 1 এর মধ্যে) মান রূপান্তরিত করে। এই ফাংশনটি বিশেষভাবে বাইনারি ক্লাসিফিকেশন মডেলে ব্যবহৃত হয়, যেখানে আউটপুট দুইটি ক্লাসের মধ্যে একটি হতে হবে। সিগময়েড ফাংশন মূলত লজিস্টিক রিগ্রেশন মডেলে ব্যবহৃত হয়, যা বাইনারি ক্লাসিফিকেশনের জন্য একটি জনপ্রিয় মডেল।
Sigmoid Function এর ফর্মুলা:
যেখানে:
- হল সিগময়েড ফাংশনের আউটপুট।
- হল ইনপুট মান (মডেলের প্যারামিটার বা পূর্বাভাস)।
- হল ন্যাচারাল লগারিদমের বেস (যা প্রায় 2.718)।
এই ফাংশনটি যে কোনো ইনপুট মান কে 0 এবং 1 এর মধ্যে মানে রূপান্তরিত করে, যা প্রবাবিলিটি (probability) হিসেবে ব্যবহার করা যায়। বাইনারি ক্লাসিফিকেশন মডেলে আউটপুটটি 0 বা 1 হবে, যেখানে 1 সাধারণত একটি শ্রেণির প্রতিনিধিত্ব করে এবং 0 অন্য শ্রেণির প্রতিনিধিত্ব করে।
Sigmoid Function এর ব্যবহার
Sigmoid Function মডেলকে আউটপুট হিসেবে দুটি শ্রেণির মধ্যে একটি নির্ধারণ করতে সাহায্য করে। এই ফাংশনটি ইনপুটের উপর ভিত্তি করে একটি প্রোবাবিলিটি নির্ধারণ করে এবং তারপরে সেই প্রোবাবিলিটিকে 0 বা 1 তে রূপান্তরিত করে।
উদাহরণ:
ধরা যাক, লজিস্টিক রিগ্রেশন মডেলটি একটি ইমেইলকে স্প্যাম বা নন-স্প্যাম শ্রেণিতে ভাগ করছে। মডেলটি একটি আউটপুট প্রদান করবে যা সিগময়েড ফাংশনের মাধ্যমে একটি প্রোবাবিলিটি হবে। উদাহরণস্বরূপ, সিগময়েড আউটপুট 0.8 হলে, এটি নির্দেশ করে যে মডেলটি 80% সম্ভাবনা নিয়ে সেই ইমেইলটি স্প্যাম শ্রেণির অন্তর্ভুক্ত মনে করছে, এবং 0.2 হলে 20% সম্ভাবনা।
import numpy as np
import matplotlib.pyplot as plt
def sigmoid(x):
return 1 / (1 + np.exp(-x))
# x এর মানগুলি তৈরি
x = np.linspace(-10, 10, 100)
# সিগময়েড ফাংশনের মান বের করা
y = sigmoid(x)
# ফলাফল প্লট করা
plt.plot(x, y)
plt.title('Sigmoid Function')
plt.xlabel('x')
plt.ylabel('Sigmoid(x)')
plt.grid(True)
plt.show()
এটি একটি S-shaped curve তৈরি করবে, যেখানে ইনপুটের বৃদ্ধি সহ আউটপুট 0 থেকে 1 এর মধ্যে পরিবর্তিত হবে।
Sigmoid Function এর সুবিধা ও সীমাবদ্ধতা
সুবিধা:
- প্রবাবিলিটি আউটপুট:
সিগময়েড ফাংশন বাইনারি ক্লাসিফিকেশন মডেলে প্রবাবিলিটি প্রদান করতে সহায়ক, যা সিদ্ধান্ত গ্রহণে সহায়ক হতে পারে। - নন-লিনিয়ারিটি:
সিগময়েডের সঞ্চালন আউটপুটটি কেবল 0 এবং 1 এর মধ্যে সীমাবদ্ধ থাকে, যা মডেলকে গুরুত্বপূর্ণ তথ্য সংগ্রহ করতে সহায়ক।
সীমাবদ্ধতা:
- Vanishing Gradient Problem:
সিগময়েড ফাংশনটি বড় ইনপুটের জন্য খুব ছোট গ্র্যাডিয়েন্ট প্রদান করতে পারে, যা ব্যাকপ্রোপাগেশন সময় সমস্যা তৈরি করতে পারে। - আউটপুট সীমাবদ্ধতা:
সিগময়েডের আউটপুট সর্বদা 0 থেকে 1 এর মধ্যে থাকে, যার ফলে এটি শুধুমাত্র বাইনারি সিদ্ধান্তে ব্যবহৃত হতে পারে।
সারাংশ
- Binary Classification হল একটি মেশিন লার্নিং সমস্যা যেখানে আউটপুট দুটি শ্রেণির মধ্যে একটি হতে হবে, যেমন স্প্যাম বা নন-স্প্যাম।
- Sigmoid Function একটি নন-লিনিয়ার ফাংশন যা ইনপুট ভ্যালুকে 0 এবং 1 এর মধ্যে রূপান্তরিত করে, যা বাইনারি ক্লাসিফিকেশনে প্রবাবিলিটি হিসেবে ব্যবহৃত হয়।
Read more